The present invention relates to an apparatus for displaying a character of three-dimensional (three-dimensional) computer graphics by relating a skeleton that describes a framework to polygon data that describes an outer surface, and in particular, to a three-dimensional skeleton data compression apparatus capable of efficiently compressing skeleton data.
Due to the recent enhanced performance of computer systems and development of a multimedia processing technique, an environment allowing even a personal computer or the like to process sophisticated three-dimensional computer graphics (hereinafter, abbreviated as a xe2x80x9cCGxe2x80x9d) is being established, and a graphic accelerator board and the like dedicated to processing of a three-dimensional CG are being provided.
There are various types of data formats of a three-dimensional CG. In a game involving the movement of a character such as an artificial creature and an object, generally, data on an object is held mainly in a polygon format, and regarding a rendering process, a texture is attached to a generated polygon mesh, whereby high-speed rendering processing is conducted.
The polygon is obtained by relating positional information of polygon vertexes to texture information that is a graphic pattern, and forms an outer surface of a three-dimensional character such as an artificial creature. The polygon is data for forming a mesh-shaped wire-frame model by disposing polygon vertexes on the outer surface of a three-dimensional object model designed by an animator so that changes in an outside shape are understood, and connecting each polygon vertex, and is related to texture information describing the pattern of an outer surface.
As described above, in the case where data is held in a polygon format, as the number of polygons that can be assigned to an object is larger, CG processing of higher quality will be achieved. In a recent entertainment application, there is a demand for a high quality rendering. It is not rare that more than 2,000 polygons are assigned to a three-dimensional character in order to satisfy user""s needs. It is a demanding task to describe the movement/deformation on a polygon vertex basis, so as to provide a three-dimensional object described by a large number of polygons with movement/deformation information in accordance with each scene. Therefore, an idea of a skeleton is introduced. If the movement of a three-dimensional character such as an artificial creature is expressed by a skeleton that is to be a framework thereof, and polygon data that is to be an outer surface is related to the skeleton, it becomes easy to conduct polygon deformation processing. This is because, in general, an artificial creature also has joints conceptually, and its skeleton is mostly operated with respect to the joints. The movement of an artificial creature on a scene basis is described as changes in a skeleton. Since each skeleton is related to polygon vertexes forming the outside shape, the movement of each polygon vertex can be described and calculated based on the movement of the skeleton.
The relationship between the skeleton data and the polygon data will be briefly described with reference to FIG. 10. As shown in FIG. 10, it is assumed that a skeleton 101 and a skeleton 102 are connected to each other via a joint and relatively rotatable. A polygon vertex 110 will be exemplified. The relationship between the polygon vertex and the skeleton is described by a numerical value such as weight information. The weight information is a numerical value showing a degree of the influence of the movement of the skeleton on the polygon vertex. For example, in the case where weight is 100, the polygon vertex moves 100% in accordance with the movement of the skeleton, and in the case where weight is 0, even if the skeleton is changed, the polygon vertex will neither be influenced nor changed. As shown in FIG. 10(a), it is assumed that the weight information of the polygon vertex 110 is set at xe2x80x9c100xe2x80x9d with respect to the skeleton 101 and at xe2x80x9c0xe2x80x9d with respect to the skeleton 102. It is assumed that the XYZ coordinate of the polygon vertex 110 at a scene 1 is (X0, Y0, Z0). Then, the skeleton 102 is rotated in accordance with the development of the scene so as to be moved to a position represented by 102a. In this example, the polygon vertex 110 is 100% dependent upon only the skeleton 101, and an influence thereon by the movement of the skeleton 102 is set at xe2x80x9c0xe2x80x9d. Therefore, the coordinate of the polygon vertex 110 remains at (X0, Y0, Z0). On the other hand, as shown in FIG. 10(b), in the case where the weight information of the polygon vertex 110 is set at xe2x80x9c0xe2x80x9d with respect to the skeleton 101 and at xe2x80x9c100xe2x80x9d with respect to the skeleton 102, when the skeleton 102 is rotated so as to be moved to a position represented by 102a, the polygon vertex 110 is 100% dependent upon only the skeleton 102, and is rotated in accordance with the rotation of the skeleton 2 to take coordinate (X1, Y1, Z1). In this manner, if the weight information of a polygon vertex is provided to skeleton data, it is not required to give movement/deformation information to all the polygon vertexes individually, with respect to the movement/deformation of a three-dimensional object. Therefore, when the movement/deformation information of a skeleton is given, the movement of a polygon vertex can be described, and the movement of a three-dimensional character can be described.
As described in the prior art, by using skeleton data, the movement of a three-dimensional character can be described on a skeleton basis, and an apparatus user such as an animator can more easily describe an animation scene. However, there arises a problem that enormous amount of calculation processing is involved for deformation processing of a three-dimensional character based on skeleton data. More specifically, it is required to conduct enormous amount of matrix calculation for actually moving/deforming a skeleton based on the information of movement/deformation of the skeleton and conducting movement/deformation processing with respect to a corresponding polygon vertex based on the weight information. As the number of skeletons and polygon vertexes becomes larger, its calculation cost is increased. It is difficult for a personal computer or home game equipment to absorb a calculation cost. Therefore, the number of polygons of a three-dimensional character model is limited and rendering processing ability of a three-dimensional character at each scene is not sufficient; consequently, rendering processing with smooth and natural movement cannot be conducted.
Thus, according to the three-dimensional object rendering processing that adopts a skeleton, performance and quality are determined depending upon the calculation processing ability of a platform. Therefore, in the case where a three-dimensional object is displayed in real time, it is an important technique to reduce a data amount regarding skeleton data so as to decrease a calculation processing amount.
The present invention has been achieved in order to overcome the problems of three-dimensional object rendering using skeleton data of the prior art, and its object is to provide a three-dimensional skeleton data compression processing apparatus capable of compressing a data amount regarding skeleton data so as to decrease a calculation amount, and ensuring smooth and natural movement of a three-dimensional object without degrading a rendering quality thereof.
In order to achieve the above-mentioned object, a three-dimensional skeleton data compression processing apparatus of the present invention is a skeleton data compression apparatus for compressing and holding skeleton data, used in a three-dimensional polygon display apparatus that renders a three-dimensional character described by polygon data and skeleton data, including: a weight detecting part for detecting weight information that is a numerical value representing a relationship between a skeleton and a polygon vertex and showing a degree of an influence of movement of the skeleton on the vertex, based on input skeleton data; a weight compression threshold value setting part for setting a weight compression threshold value that is set by a user and used for deleting weight information equal to or lower than the numerical value as the weight information having a small degree of an influence involved in the movement of the skeleton; and a weight compressing part for reducing/compressing weight information equal to or lower than the set weight compression threshold value, among weight information detected by the weight detecting part.
Because of the above-mentioned configuration, a weight value is deleted, which shows an actually ignorable influence of the movement of a skeleton on polygon data in rendering, whereby weight information can be compressed to reduce a data amount substantially without degrading rendering quality of a three-dimensional character.
Next, it is preferable that the three-dimensional skeleton data compression processing apparatus of the present invention includes a first skeleton compressing part for reducing/compressing a skeleton having no polygon vertex with a weight value and having no polygon vertex influenced by movement of the skeleton, after the weight compression by the weight compressing part,.
Because of the above-mentioned configuration, skeleton data having no polygon vertex influenced by the movement of the skeleton can be reduced and compressed, and a data amount can be reduced substantially without degrading rendering of a three-dimensional character. Examples of a skeleton having no polygon vertex influenced by the movement of a skeleton include a joint, a contact point, and the like virtually provided in a three-dimensional artificial creature. Regarding polygon data that is an outer surface, in the case where, for example, an arm of an artificial creature is moving, it can be described that a polygon vertex is moving, depending upon a skeleton of a bone portion of an upper arm and a skeleton of a bone portion of a lower arm, and the polygon vertex does not directly depend upon an elbow joint.
Next, in the three-dimensional skeleton data compression processing apparatus of the present invention, it is preferable that the weight detection by the weight detecting part, the weight compression by the weight compressing part, and the skeleton compression by the first skeleton compressing part are conducted on each scene describing a series of movements of a three-dimensional character, and a compressible skeleton having less movement is dynamically determined on each scene to compress skeleton data.
Because of the above-mentioned configuration, compressible skeleton data can be compressed dynamically on a scene basis, and a data mount can be further reduced in accordance with a scene.
Next, it is preferable that the three-dimensional skeleton data compression processing apparatus of the present invention includes a skeleton relative movement detecting part for detecting relative movement between skeletons and detecting a skeleton group that moves as one body without relative movement, and a second skeleton compressing part for reducing/integrating skeletons, detected by the skeleton relative movement detecting part to be the skeleton group that moves as one body, into a unified and integrated skeleton on a scene basis describing a series of movements of a three-dimensional character, thereby reducing/compressing a number of skeletons.
Because of the above-mentioned configuration, skeletons without relative movement can be integrated to reduce the number of skeletons, thereby compressing skeleton, in accordance with the movement of a three-dimensional character on a scene basis, and a data amount can be reduced without degrading substantially rendering quality of a three-dimensional character. For example, when a scene in which an artificial creature walks is compared with a scene in which an artificial creature stands and nods, in the scene in which an artificial creature walks, a number of skeletons relatively move. Therefore, in order to render smooth and natural movement, it is preferable not to excessively reduce skeleton data. However, in the scene in which an artificial creature stands and nods, a portion below the chest can be described as one integrated skeleton; therefore, even if a data amount is reduced by decreasing the number of skeletons, the scene will not be visually degraded. Thus, a compressible skeleton is dynamically determined in accordance with an action scene, whereby skeleton data is compressed.
Next, it is preferable that the three-dimensional skeleton data compression processing apparatus of the present invention includes a skeleton compression mask setting part for specifying a particular skeleton so that it will not be a target for skeleton compression, wherein, even in a case where the skeleton specified by the skeleton compression mask setting part is determined to be a target for skeleton compression, the specified skeleton is not subjected to the skeleton compression.
Because of the above-mentioned configuration, a particular skeleton can be prevented from being compressed by mask setting by an animator or the like, even if it satisfies the condition of skeleton compression, and flexible skeleton compression processing can be conveniently realized.
Next, it is preferable that the three-dimensional skeleton data compression processing apparatus of the present invention includes a polygon file creating part for sorting and editing polygon data in accordance with a scene progression and a change thereof in a time series, based on skeleton data and polygon data after the skeleton compression, thereby creating a polygon file executable in a three-dimensional polygon display apparatus.
Because of the above-mentioned configuration, skeleton data and polygon data subjected to weight compression and skeleton compression can be edited as a polygon file in accordance with a scene progression by using the three-dimensional skeleton data compression apparatus of the present invention, and rendering reproduction in the three-dimensional polygon display apparatus can be conducted.
Next, it is preferable that the three-dimensional skeleton data compression processing apparatus of the present invention includes an animation creating part for creating each frame data by executing a rendering based on skeleton data and polygon data after the skeleton compression, followed by sorting in a time series, thereby creating animation data.
Because of the above-mentioned configuration, an image can be obtained on a frame basis by conducting rendering processing based on skeleton data and polygon data subjected to weight compression and skeleton compression, and animation data can be created as a motion image, by using the three-dimensional skeleton data compression apparatus of the present invention,
Next, the computer-readable recording medium of the present invention is a computer-readable storage medium storing a processing program for realizing a skeleton data compression apparatus for compressing and holding skeleton data, used in a three-dimensional polygon display apparatus for rendering a three-dimensional character described by polygon data and skeleton data, including: a weight detection processing operation of detecting weight information that is a numerical value representing a relationship between a skeleton and a polygon vertex and showing a degree of an influence of movement of the skeleton on the vertex, based on input skeleton data; a weight compression threshold value setting processing operation of setting a weight compression threshold value that is set by a user and used for deleting weight information equal to or lower than the numerical value as the weight information having a small degree of an influence involved in the movement of the skeleton; a weight compression processing operation of reducing/compressing weight information equal to or lower than the set weight compression threshold value, among weight information detected by the weight detection processing operation; and a first skeleton compression processing operation of reducing/compressing a skeleton having no polygon vertex with a weight value and having no polygon vertex influenced by movement of the skeleton, after the weight compression by the weight compression processing operation.
Because of the above-mentioned configuration, a processing program is loaded onto a computer, whereby a three-dimensional skeleton data compression apparatus for reducing/compressing compressible skeleton data can be configured by using a personal computer or the like.
Furthermore, the computer-readable recording medium of the present invention is a computer-readable storage medium storing a processing program for realizing a skeleton data compression apparatus for compressing and holding skeleton data, used in a three-dimensional polygon display apparatus for rendering a three-dimensional character described by polygon data and skeleton data, including: a weight detection processing operation of detecting weight that is a numerical value representing a relationship between a skeleton and a polygon vertex and showing a degree of an influence of movement of the skeleton on the vertex, based on input skeleton data; a weight compression threshold value setting processing operation of setting a weight compression threshold value that is set by a user and used for deleting weight information equal to or lower than the numerical value as the weight information having a small degree of an influence involved in the movement of the skeleton; a weight compression processing operation of reducing/compressing weight information equal to or lower than the set weight compression threshold value, among weight information detected by the weight detection processing operation; a skeleton relative movement detection processing operation of detecting relative movement between skeletons and detecting a skeleton group that moves as one body without relative movement; and a second skeleton compression processing operation of reducing/integrating skeletons, detected by the skeleton relative movement detecting part to be the skeleton group that moves as one body, into a unified and integrated skeleton on a scene basis describing a series of movements of a three-dimensional character, thereby reducing/compressing a number of skeletons.
Because of the above-mentioned configuration, a processing program is loaded onto a computer, whereby a three-dimensional skeleton data compression apparatus for integrating a compressible skeleton group to compress skeleton data can be configured by using a personal computer or the like.